package com.seqb.common.disruptor;

import com.lmax.disruptor.EventFactory;

/**
 * @author lilinshen
 * @title 请填写标题
 * @description 请填写相关描述
 * @date 2020/5/11
 */
public class LongEventFactory implements EventFactory<LongEvent> {

    /**
     * LongEventFactory去实现EventFactory的接口，去重写它的newInstance方法直接new LongEvent。
     * 构建这个环的时候为什么要指定一个产生事件的工厂，我直接new这个事件不可以吗？但是有的事件里面
     * 的构造方法不让你new呢，产生事件工厂的话你可以灵活的指定一些 ，这里面也是牵扯到效率的。底层
     * 比较深，我给大家解释一下：
     * 这里牵扯效率问题，因为Disruptor初始化的时候会调用Event工厂，对ringBuffer进行内存的提前分
     * 配，GC频率会降低。
     */
    @Override
    public LongEvent newInstance() {
        return new LongEvent();
    }
}
